home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / menuman.zip / MENUA-L.BAS < prev    next >
BASIC Source File  |  1992-04-06  |  26KB  |  817 lines

  1. ' MENUMAN program for menu making with letters
  2.  
  3. DECLARE SUB AdBox ()
  4. DECLARE SUB Bordertown ()
  5. DECLARE SUB Disksave ()
  6. DECLARE SUB Killer ()
  7. DECLARE SUB LetterDo ()
  8. DECLARE SUB Letter2 ()
  9. DECLARE SUB Letter3 ()
  10. DECLARE SUB Letter4 ()
  11. DECLARE SUB Letter5 ()
  12. DECLARE SUB Letter6 ()
  13. DECLARE SUB Letter7 ()
  14. DECLARE SUB Letter8 ()
  15. DECLARE SUB Letter9 ()
  16. DECLARE SUB Letter10 ()
  17. DECLARE SUB Letter11 ()
  18. DECLARE SUB Letter12 ()
  19. DECLARE SUB MenuLetter ()
  20. DECLARE SUB Namer ()
  21. DECLARE SUB Opener ()
  22. DECLARE SUB SoLong ()
  23. DECLARE SUB WrongKey ()
  24. DECLARE FUNCTION Handler ()
  25.  
  26. CLS
  27. DIM sign$(16)
  28. sign$(1) = STRING$(80, 223)
  29. sign$(2) = "  ╔═══╗    ╔═══╗"
  30. sign$(3) = "  ║   ║    ║   ║"
  31. sign$(4) = "  ║   ║    ║   ║"
  32. sign$(5) = "  ║   ║    ║   ║"
  33. sign$(6) = "  ║   ║    ║   ║"
  34. sign$(7) = "  ║   ║    ║   ║"
  35. sign$(8) = "  ║   ╚════╝   ║"
  36. sign$(9) = "  ║            ║ ╔══════ ╔═╗       ║ ║       ║ ╔══╗  ╔══╗  ╔════╗ ╔═╗       ║"
  37. sign$(10) = "  ║            ║ ║       ║ ╚═╗     ║ ║       ║ ║  ║  ║  ║  ║    ║ ║ ╚═╗     ║"
  38. sign$(11) = "  ║            ║ ║       ║   ╚═╗   ║ ║       ║ ║  ╚══╝  ║  ║    ║ ║   ╚═╗   ║"
  39. sign$(12) = "  ║            ║ ║════   ║     ╚═╗ ║ ║       ║ ║        ║  ║════║ ║     ╚═╗ ║"
  40. sign$(13) = "  ║            ║ ║       ║       ╚═║ ║       ║ ║        ║  ║    ║ ║       ╚═║"
  41. sign$(14) = "  ║            ║ ║       ║         ║ ║       ║ ║        ║  ║    ║ ║         ║"
  42. sign$(15) = "  ║            ║ ╚══════ ║         ║ ╚═══════╝ ║        ║  ║    ║ ║         ║"
  43. sign$(16) = STRING$(80, 220)
  44.  
  45. FOR SET = 1 TO 16
  46.       LOCATE SET + 3, 1: PRINT sign$(SET)
  47. NEXT
  48.  
  49. LOCATE 7, 30, 0: COLOR 0, 15: PRINT "     S E L E C T I O N  B Y  L E T T E R S     ": COLOR 15, 0
  50. SLEEP 20
  51. Opener
  52.  
  53. Handler:
  54. SELECT CASE ERR
  55.  
  56. CASE 53
  57. OPEN "TESTMENU.BAS" FOR APPEND AS #1
  58. CLOSE #1
  59. Opener
  60.  
  61. CASE ELSE
  62. ON ERROR GOTO 0
  63. END SELECT
  64.  
  65. SUB AdBox
  66. CLS
  67. DIM AD$(17)
  68. LOCATE 2, 20: PRINT STRING$(40, 15)
  69. FOR SIDE = 3 TO 21
  70. LOCATE SIDE, 20: PRINT CHR$(15); SPACE$(38); CHR$(15)
  71. NEXT
  72. LOCATE 22, 20: PRINT STRING$(40, 15)
  73.  
  74. AD$(1) = "     Thanks for using MENUMAN"
  75. AD$(2) = STRING$(35, 32)
  76. AD$(3) = "If MENUMAN has been useful to you,"
  77. AD$(4) = "please send $10 in check or money"
  78. AD$(5) = "order to this address:"
  79. AD$(6) = "     Carmen Paone"
  80. AD$(7) = "     1525 Locust St."
  81. AD$(8) = "     Reading, Pa."
  82. AD$(9) = "     19604"
  83. AD$(10) = STRING$(35, 32)
  84. AD$(11) = "Please specify the size disk _ "
  85. AD$(12) = "5.25  or 3.5 _ you would like."
  86. AD$(13) = "Registered users of MENUMAN"
  87. AD$(14) = "will receive updates free"
  88. AD$(15) = "of charge. Planned updates:"
  89. AD$(16) = "bounce-bar menus, Lotus-type"
  90. AD$(17) = "menus, F-Key menus and others."
  91.  
  92. FOR SET = 1 TO 17
  93.         LOCATE SET + 3, 23: COLOR 15, 0: PRINT AD$(SET): COLOR 7, 0
  94. NEXT
  95.  
  96. SLEEP 30
  97. SoLong
  98. END SUB
  99.  
  100. SUB Bordertown
  101. CLS
  102. PRINT
  103. PRINT SPACE$(23); "BORDER SELECTION SUGGESTIONS"
  104. PRINT
  105. FOR A% = 35 TO 37
  106. PRINT "NUMBER  "; A%; " = "; STRING$(7, CHR$(A%)); SPACE$(5);
  107. NEXT
  108. PRINT
  109. FOR B% = 176 TO 178
  110. PRINT "NUMBER "; B%; " = "; STRING$(7, CHR$(B%)); SPACE$(5);
  111. NEXT
  112. PRINT
  113. FOR C% = 219 TO 221
  114. PRINT "NUMBER "; C%; " = "; STRING$(7, CHR$(C%)); SPACE$(5);
  115. NEXT
  116. PRINT
  117. FOR D% = 228 TO 230
  118. PRINT "NUMBER "; D%; " = "; STRING$(7, CHR$(D%)); SPACE$(5);
  119. NEXT
  120. PRINT
  121. FOR E% = 233 TO 235
  122. PRINT "NUMBER "; E%; " = "; STRING$(7, CHR$(E%)); SPACE$(5);
  123. NEXT
  124. PRINT
  125. PRINT
  126. PRINT SPACE$(23); "OTHER BORDER POSSIBILITIES"
  127. PRINT
  128. PRINT "NUMBER  15  =  "; STRING$(7, 15); SPACE$(5); "NUMBER   42  =  "; STRING$(7, 42); SPACE$(5); "NUMBER   92  =  "; STRING$(7, 92)
  129. PRINT
  130. PRINT "NUMBER 127  =  "; STRING$(7, 127); SPACE$(5); "NUMBER  153 =  "; STRING$(7, 153); SPACE$(5); " NUMBER   242 =  "; STRING$(7, 242)
  131. PRINT
  132. PRINT
  133.  
  134. END SUB
  135.  
  136. SUB Disksave
  137. OPEN "TESTMENU.BAS" FOR APPEND AS #1
  138. END SUB
  139.  
  140. SUB Killer
  141. ON ERROR GOTO Handler
  142. KILL "TESTMENU.BAS"
  143. LOCATE 15, 27: COLOR 0, 15: PRINT "  TESTMENU.BAS KILLED  ": COLOR 15, 0
  144. SLEEP 10
  145. MenuLetter
  146. END SUB
  147.  
  148. SUB Letter10
  149. Bordertown
  150. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  151. CLS
  152. LOCATE 5, 1: PRINT STRING$(80, border%)
  153. FOR SIDE = 2 TO 14
  154.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  155. NEXT
  156. PRINT STRING$(80, border%)
  157. Disksave
  158. PRINT #1, "Top:"
  159. PRINT #1, "CLS"
  160. PRINT #1, "LOCATE 5, 1: PRINT STRING$(80,"; border%; ")"
  161. PRINT #1, "FOR SIDE = 2 TO 14"
  162. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  163. PRINT #1, "NEXT"
  164. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  165. CLOSE #1
  166. SLEEP 10
  167. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  168. SLEEP 5
  169. X = (80 - LEN(title$)) / 2
  170. LOCATE 3, 1: PRINT SPACE$(80);
  171. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  172. Disksave
  173. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  174. PRINT #1, "X = (80 - LEN(title$)) / 2"
  175. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  176. CLOSE #1
  177. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  178. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  179. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  180. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  181. LOCATE 12, 10: INPUT "ENTRY FOR E "; entrye$
  182. LOCATE 12, 45: INPUT "ENTRY FOR F "; entryf$
  183. LOCATE 14, 10: INPUT "ENTRY FOR G "; entryg$
  184. LOCATE 14, 45: INPUT "ENTRY FOR H "; entryh$
  185. LOCATE 16, 10: INPUT "ENTRY FOR I "; entryi$
  186. LOCATE 16, 45: INPUT "ENTRY FOR J "; entryj$
  187. Disksave
  188. PRINT #1, "LOCATE 8, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "F }  "; entryb$; CHR$(34)
  189. PRINT #1, "LOCATE 10, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "G }  "; entryd$; CHR$(34)
  190. PRINT #1, "LOCATE 12, 15: PRINT "; CHR$(34); "C }  "; entrye$; CHR$(34); "TAB(45)"; CHR$(34); "H }  "; entryf$; CHR$(34)
  191. PRINT #1, "LOCATE 14, 15: PRINT "; CHR$(34); "D }  "; entryg$; CHR$(34); "TAB(45)"; CHR$(34); "I }  "; entryh$; CHR$(34)
  192. PRINT #1, "LOCATE 16, 15: PRINT "; CHR$(34); "E }  "; entryi$; CHR$(34); "TAB(45)"; CHR$(34); "J }  "; entryj$; CHR$(34)
  193. LetterDo
  194. FOR number% = 65 TO 74
  195. PRINT #1, "CASE "; number%; ":"
  196. NEXT
  197. WrongKey
  198. PRINT #1, "END SELECT"
  199. CLOSE #1
  200. SLEEP 5
  201. AdBox
  202.  
  203. END SUB
  204.  
  205. SUB Letter11
  206. Bordertown
  207. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  208. CLS
  209. LOCATE 3, 1: PRINT STRING$(80, border%)
  210. FOR SIDE = 2 TO 18
  211.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  212. NEXT
  213. PRINT STRING$(80, border%)
  214. Disksave
  215. PRINT #1, "Top:"
  216. PRINT #1, "CLS"
  217. PRINT #1, "LOCATE 3, 1: PRINT STRING$(80,"; border%; ")"
  218. PRINT #1, "FOR SIDE = 2 TO 18"
  219. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  220. PRINT #1, "NEXT"
  221. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  222. CLOSE #1
  223. SLEEP 10
  224. LOCATE 1, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  225. SLEEP 5
  226. X = (80 - LEN(title$)) / 2
  227. LOCATE 1, 1: PRINT SPACE$(80);
  228. LOCATE 1, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  229. Disksave
  230. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  231. PRINT #1, "X = (80 - LEN(title$)) / 2"
  232. PRINT #1, "LOCATE 1, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  233. CLOSE #1
  234. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  235. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  236. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  237. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  238. LOCATE 12, 10: INPUT "ENTRY FOR E "; entrye$
  239. LOCATE 12, 45: INPUT "ENTRY FOR F "; entryf$
  240. LOCATE 14, 10: INPUT "ENTRY FOR G "; entryg$
  241. LOCATE 14, 45: INPUT "ENTRY FOR H "; entryh$
  242. LOCATE 16, 10: INPUT "ENTRY FOR I "; entryi$
  243. LOCATE 16, 45: INPUT "ENTRY FOR J "; entryj$
  244. LOCATE 18, 29: INPUT "ENTRY FOR K "; entryk$
  245. Disksave
  246. PRINT #1, "LOCATE 7, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "F }  "; entryb$; CHR$(34)
  247. PRINT #1, "LOCATE 9, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "G }  "; entryd$; CHR$(34)
  248. PRINT #1, "LOCATE 11, 15: PRINT "; CHR$(34); "C }  "; entrye$; CHR$(34); "TAB(45)"; CHR$(34); "H }  "; entryf$; CHR$(34)
  249. PRINT #1, "LOCATE 13, 15: PRINT "; CHR$(34); "D }  "; entryg$; CHR$(34); "TAB(45)"; CHR$(34); "I }  "; entryh$; CHR$(34)
  250. PRINT #1, "LOCATE 15, 15: PRINT "; CHR$(34); "E }  "; entryi$; CHR$(34); "TAB(45)"; CHR$(34); "J }  "; entryj$; CHR$(34)
  251. PRINT #1, "LOCATE 17, 29: PRINT "; CHR$(34); "K }  "; entryk$; CHR$(34)
  252. LetterDo
  253. FOR number% = 65 TO 75
  254. PRINT #1, "CASE "; number%; ":"
  255. NEXT
  256. WrongKey
  257. PRINT #1, "END SELECT"
  258. CLOSE #1
  259. SLEEP 5
  260. AdBox
  261.  
  262. END SUB
  263.  
  264. SUB Letter12
  265. Bordertown
  266. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  267. CLS
  268. LOCATE 3, 1: PRINT STRING$(80, border%)
  269. FOR SIDE = 2 TO 18
  270.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  271. NEXT
  272. PRINT STRING$(80, border%)
  273. Disksave
  274. PRINT #1, "Top:"
  275. PRINT #1, "CLS"
  276. PRINT #1, "LOCATE 3, 1: PRINT STRING$(80,"; border%; ")"
  277. PRINT #1, "FOR SIDE = 2 TO 18"
  278. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  279. PRINT #1, "NEXT"
  280. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  281. CLOSE #1
  282. SLEEP 10
  283. LOCATE 1, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  284. SLEEP 5
  285. X = (80 - LEN(title$)) / 2
  286. LOCATE 1, 1: PRINT SPACE$(80);
  287. LOCATE 1, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  288. Disksave
  289. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  290. PRINT #1, "X = (80 - LEN(title$)) / 2"
  291. PRINT #1, "LOCATE 1, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  292. CLOSE #1
  293. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  294. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  295. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  296. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  297. LOCATE 12, 10: INPUT "ENTRY FOR E "; entrye$
  298. LOCATE 12, 45: INPUT "ENTRY FOR F "; entryf$
  299. LOCATE 14, 10: INPUT "ENTRY FOR G "; entryg$
  300. LOCATE 14, 45: INPUT "ENTRY FOR H "; entryh$
  301. LOCATE 16, 10: INPUT "ENTRY FOR I "; entryi$
  302. LOCATE 16, 45: INPUT "ENTRY FOR J "; entryj$
  303. LOCATE 18, 10: INPUT "ENTRY FOR K "; entryk$
  304. LOCATE 18, 45: INPUT "ENTRY FOR L "; entryl$
  305. Disksave
  306. PRINT #1, "LOCATE 7, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "G }  "; entryb$; CHR$(34)
  307. PRINT #1, "LOCATE 9, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "H }  "; entryd$; CHR$(34)
  308. PRINT #1, "LOCATE 11, 15: PRINT "; CHR$(34); "C }  "; entrye$; CHR$(34); "TAB(45)"; CHR$(34); "I }  "; entryf$; CHR$(34)
  309. PRINT #1, "LOCATE 13, 15: PRINT "; CHR$(34); "D }  "; entryg$; CHR$(34); "TAB(45)"; CHR$(34); "J }  "; entryh$; CHR$(34)
  310. PRINT #1, "LOCATE 15, 15: PRINT "; CHR$(34); "E }  "; entryi$; CHR$(34); "TAB(45)"; CHR$(34); "K }  "; entryj$; CHR$(34)
  311. PRINT #1, "LOCATE 17, 15: PRINT "; CHR$(34); "F }  "; entryk$; CHR$(34); "TAB(45)"; CHR$(34); "L }  "; entryl$; CHR$(34)
  312. LetterDo
  313. FOR number% = 65 TO 76
  314. PRINT #1, "CASE "; number%; ":"
  315. NEXT
  316. WrongKey
  317. PRINT #1, "END SELECT"
  318. CLOSE #1
  319. SLEEP 5
  320. AdBox
  321.  
  322. END SUB
  323.  
  324. SUB Letter2
  325. Bordertown
  326. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  327. CLS
  328. LOCATE 6, 1: PRINT STRING$(80, border%)
  329. FOR SIDE = 2 TO 4
  330.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  331. NEXT
  332. PRINT STRING$(80, border%)
  333. Disksave
  334. PRINT #1, "Top:"
  335. PRINT #1, "CLS"
  336. PRINT #1, "LOCATE 6, 1: PRINT STRING$(80,"; border%; ")"
  337. PRINT #1, "FOR SIDE = 2 TO 4"
  338. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  339. PRINT #1, "NEXT"
  340. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  341. CLOSE #1
  342. SLEEP 10
  343. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  344. SLEEP 5
  345. X = (80 - LEN(title$)) / 2
  346. LOCATE 3, 1: PRINT SPACE$(80);
  347. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  348. Disksave
  349. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  350. PRINT #1, "X = (80 - LEN(title$)) / 2"
  351. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  352. CLOSE #1
  353. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  354. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  355. Disksave
  356. PRINT #1, "LOCATE 8, 10: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "B }  "; entryb$; CHR$(34)
  357. LetterDo
  358. FOR number% = 65 TO 66
  359. PRINT #1, "CASE "; number%; ":"
  360. NEXT
  361. WrongKey
  362. PRINT #1, "END SELECT"
  363. CLOSE #1
  364. SLEEP 5
  365. AdBox
  366. END SUB
  367.  
  368. SUB Letter3
  369. Bordertown
  370. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  371. CLS
  372. LOCATE 6, 1: PRINT STRING$(80, border%)
  373. FOR SIDE = 2 TO 6
  374.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  375. NEXT
  376. PRINT STRING$(80, border%)
  377. Disksave
  378. PRINT #1, "Top:"
  379. PRINT #1, "CLS"
  380. PRINT #1, "LOCATE 6, 1: PRINT STRING$(80,"; border%; ")"
  381. PRINT #1, "FOR SIDE = 2 TO 6"
  382. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  383. PRINT #1, "NEXT"
  384. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  385. CLOSE #1
  386. SLEEP 10
  387. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  388. SLEEP 5
  389. X = (80 - LEN(title$)) / 2
  390. LOCATE 3, 1: PRINT SPACE$(80);
  391. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  392. Disksave
  393. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  394. PRINT #1, "X = (80 - LEN(title$)) / 2"
  395. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  396. CLOSE #1
  397. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  398. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  399. LOCATE 10, 29: INPUT "ENTRY FOR C "; entryc$
  400. Disksave
  401. PRINT #1, "LOCATE 8, 10: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "B }  "; entryb$; CHR$(34)
  402. PRINT #1, "LOCATE 10, 29: PRINT "; CHR$(34); "C }  "; entryc$; CHR$(34)
  403. LetterDo
  404. FOR number% = 65 TO 67
  405. PRINT #1, "CASE "; number%; ":"
  406. NEXT
  407. WrongKey
  408. PRINT #1, "END SELECT"
  409. CLOSE #1
  410. SLEEP 5
  411. AdBox
  412.  
  413. END SUB
  414.  
  415. SUB Letter4
  416. Bordertown
  417. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  418. CLS
  419. LOCATE 6, 1: PRINT STRING$(80, border%)
  420. FOR SIDE = 2 TO 6
  421.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  422. NEXT
  423. PRINT STRING$(80, border%)
  424. Disksave
  425. PRINT #1, "Top:"
  426. PRINT #1, "CLS"
  427. PRINT #1, "LOCATE 6, 1: PRINT STRING$(80,"; border%; ")"
  428. PRINT #1, "FOR SIDE = 2 TO 6"
  429. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  430. PRINT #1, "NEXT"
  431. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  432. CLOSE #1
  433. SLEEP 10
  434. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  435. SLEEP 5
  436. X = (80 - LEN(title$)) / 2
  437. LOCATE 3, 1: PRINT SPACE$(80);
  438. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  439. Disksave
  440. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  441. PRINT #1, "X = (80 - LEN(title$)) / 2"
  442. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  443. CLOSE #1
  444. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  445. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  446. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  447. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  448. Disksave
  449. PRINT #1, "LOCATE 8, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "C }  "; entryb$; CHR$(34)
  450. PRINT #1, "LOCATE 10, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "D }  "; entryd$; CHR$(34)
  451. LetterDo
  452. FOR number% = 65 TO 68
  453. PRINT #1, "CASE "; number%; ":"
  454. NEXT
  455. WrongKey
  456. PRINT #1, "END SELECT"
  457. CLOSE #1
  458. SLEEP 5
  459. AdBox
  460.  
  461. END SUB
  462.  
  463. SUB Letter5
  464. Bordertown
  465. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  466. CLS
  467. LOCATE 6, 1: PRINT STRING$(80, border%)
  468. FOR SIDE = 2 TO 8
  469.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  470. NEXT
  471. PRINT STRING$(80, border%)
  472. Disksave
  473. PRINT #1, "Top:"
  474. PRINT #1, "CLS"
  475. PRINT #1, "LOCATE 6, 1: PRINT STRING$(80,"; border%; ")"
  476. PRINT #1, "FOR SIDE = 2 TO 8"
  477. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  478. PRINT #1, "NEXT"
  479. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  480. CLOSE #1
  481. SLEEP 10
  482. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  483. SLEEP 5
  484. X = (80 - LEN(title$)) / 2
  485. LOCATE 3, 1: PRINT SPACE$(80);
  486. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  487. Disksave
  488. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  489. PRINT #1, "X = (80 - LEN(title$)) / 2"
  490. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  491. CLOSE #1
  492. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  493. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  494. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  495. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  496. LOCATE 12, 29: INPUT "ENTRY FOR E "; entrye$
  497. Disksave
  498. PRINT #1, "LOCATE 8, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "C }  "; entryb$; CHR$(34)
  499. PRINT #1, "LOCATE 10, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "D }  "; entryd$; CHR$(34)
  500. PRINT #1, "LOCATE 12, 29: PRINT "; CHR$(34); "E }  "; entrye$; CHR$(34)
  501. LetterDo
  502. FOR number% = 65 TO 69
  503. PRINT #1, "CASE "; number%; ":"
  504. NEXT
  505. WrongKey
  506. PRINT #1, "END SELECT"
  507. CLOSE #1
  508. SLEEP 5
  509. AdBox
  510.  
  511.  
  512. END SUB
  513.  
  514. SUB Letter6
  515. Bordertown
  516. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  517. CLS
  518. LOCATE 6, 1: PRINT STRING$(80, border%)
  519. FOR SIDE = 2 TO 8
  520.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  521. NEXT
  522. PRINT STRING$(80, border%)
  523. Disksave
  524. PRINT #1, "Top:"
  525. PRINT #1, "CLS"
  526. PRINT #1, "LOCATE 6, 1: PRINT STRING$(80,"; border%; ")"
  527. PRINT #1, "FOR SIDE = 2 TO 8"
  528. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  529. PRINT #1, "NEXT"
  530. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  531. CLOSE #1
  532. SLEEP 10
  533. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  534. SLEEP 5
  535. X = (80 - LEN(title$)) / 2
  536. LOCATE 3, 1: PRINT SPACE$(80);
  537. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  538. Disksave
  539. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  540. PRINT #1, "X = (80 - LEN(title$)) / 2"
  541. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  542. CLOSE #1
  543. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  544. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  545. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  546. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  547. LOCATE 12, 10: INPUT "ENTRY FOR E "; entrye$
  548. LOCATE 12, 45: INPUT "ENTRY FOR F "; entryf$
  549. Disksave
  550. PRINT #1, "LOCATE 8, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "D }  "; entryb$; CHR$(34)
  551. PRINT #1, "LOCATE 10, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "E }  "; entryd$; CHR$(34)
  552. PRINT #1, "LOCATE 12, 15: PRINT "; CHR$(34); "C }  "; entrye$; CHR$(34); "TAB(45)"; CHR$(34); "F }  "; entryf$; CHR$(34)
  553. LetterDo
  554. FOR number% = 65 TO 70
  555. PRINT #1, "CASE "; number%; ":"
  556. NEXT
  557. WrongKey
  558. PRINT #1, "END SELECT"
  559. CLOSE #1
  560. SLEEP 5
  561. AdBox
  562.  
  563. END SUB
  564.  
  565. SUB Letter7
  566. Bordertown
  567. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  568. CLS
  569. LOCATE 6, 1: PRINT STRING$(80, border%)
  570. FOR SIDE = 2 TO 10
  571.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  572. NEXT
  573. PRINT STRING$(80, border%)
  574. Disksave
  575. PRINT #1, "Top:"
  576. PRINT #1, "CLS"
  577. PRINT #1, "LOCATE 6, 1: PRINT STRING$(80,"; border%; ")"
  578. PRINT #1, "FOR SIDE = 2 TO 10"
  579. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  580. PRINT #1, "NEXT"
  581. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  582. CLOSE #1
  583. SLEEP 10
  584. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  585. SLEEP 5
  586. X = (80 - LEN(title$)) / 2
  587. LOCATE 3, 1: PRINT SPACE$(80);
  588. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  589. Disksave
  590. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  591. PRINT #1, "X = (80 - LEN(title$)) / 2"
  592. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  593. CLOSE #1
  594. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  595. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  596. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  597. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  598. LOCATE 12, 10: INPUT "ENTRY FOR E "; entrye$
  599. LOCATE 12, 45: INPUT "ENTRY FOR F "; entryf$
  600. LOCATE 14, 29: INPUT "ENTRY FOR G "; entryg$
  601. Disksave
  602. PRINT #1, "LOCATE 8, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "D }  "; entryb$; CHR$(34)
  603. PRINT #1, "LOCATE 10, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "E }  "; entryd$; CHR$(34)
  604. PRINT #1, "LOCATE 12, 15: PRINT "; CHR$(34); "C }  "; entrye$; CHR$(34); "TAB(45)"; CHR$(34); "F }  "; entryf$; CHR$(34)
  605. PRINT #1, "LOCATE 14, 29: PRINT "; CHR$(34); "G }  "; entryg$; CHR$(34)
  606. LetterDo
  607. FOR number% = 65 TO 71
  608. PRINT #1, "CASE "; number%; ":"
  609. NEXT
  610. WrongKey
  611. PRINT #1, "END SELECT"
  612. CLOSE #1
  613. SLEEP 5
  614. AdBox
  615.  
  616. END SUB
  617.  
  618. SUB Letter8
  619. Bordertown
  620. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  621. CLS
  622. LOCATE 6, 1: PRINT STRING$(80, border%)
  623. FOR SIDE = 2 TO 10
  624.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  625. NEXT
  626. PRINT STRING$(80, border%)
  627. Disksave
  628. PRINT #1, "Top:"
  629. PRINT #1, "CLS"
  630. PRINT #1, "LOCATE 6, 1: PRINT STRING$(80,"; border%; ")"
  631. PRINT #1, "FOR SIDE = 2 TO 10"
  632. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  633. PRINT #1, "NEXT"
  634. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  635. CLOSE #1
  636. SLEEP 10
  637. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  638. SLEEP 5
  639. X = (80 - LEN(title$)) / 2
  640. LOCATE 3, 1: PRINT SPACE$(80);
  641. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  642. Disksave
  643. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  644. PRINT #1, "X = (80 - LEN(title$)) / 2"
  645. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  646. CLOSE #1
  647. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  648. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  649. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  650. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  651. LOCATE 12, 10: INPUT "ENTRY FOR E "; entrye$
  652. LOCATE 12, 45: INPUT "ENTRY FOR F "; entryf$
  653. LOCATE 14, 10: INPUT "ENTRY FOR G "; entryg$
  654. LOCATE 14, 45: INPUT "ENTRY FOR H "; entryh$
  655. Disksave
  656. PRINT #1, "LOCATE 8, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "E }  "; entryb$; CHR$(34)
  657. PRINT #1, "LOCATE 10, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "F }  "; entryd$; CHR$(34)
  658. PRINT #1, "LOCATE 12, 15: PRINT "; CHR$(34); "C }  "; entrye$; CHR$(34); "TAB(45)"; CHR$(34); "G }  "; entryf$; CHR$(34)
  659. PRINT #1, "LOCATE 14, 15: PRINT "; CHR$(34); "D }  "; entryg$; CHR$(34); "TAB(45)"; CHR$(34); "H }  "; entryh$; CHR$(34)
  660. LetterDo
  661. FOR number% = 65 TO 72
  662. PRINT #1, "CASE "; number%; ":"
  663. NEXT
  664. WrongKey
  665. PRINT #1, "END SELECT"
  666. CLOSE #1
  667. SLEEP 5
  668. AdBox
  669.  
  670. END SUB
  671.  
  672. SUB Letter9
  673. Bordertown
  674. INPUT "SELECT A BORDER BY ITS NUMBER  "; border%
  675. CLS
  676. LOCATE 5, 1: PRINT STRING$(80, border%)
  677. FOR SIDE = 2 TO 14
  678.         PRINT STRING$(5, border%); SPACE$(70); STRING$(5, border%)
  679. NEXT
  680. PRINT STRING$(80, border%)
  681. Disksave
  682. PRINT #1, "Top:"
  683. PRINT #1, "CLS"
  684. PRINT #1, "LOCATE 5, 1: PRINT STRING$(80,"; border%; ")"
  685. PRINT #1, "FOR SIDE = 2 TO 14"
  686. PRINT #1, "PRINT STRING$(5,"; border%; "); SPACE$(70); STRING$(5,"; border%; ")"
  687. PRINT #1, "NEXT"
  688. PRINT #1, "PRINT STRING$(80,"; border%; ")"
  689. CLOSE #1
  690. SLEEP 10
  691. LOCATE 3, 1: LINE INPUT "PICK A TITLE FOR MENU "; title$
  692. SLEEP 5
  693. X = (80 - LEN(title$)) / 2
  694. LOCATE 3, 1: PRINT SPACE$(80);
  695. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$: COLOR 7, 0
  696. Disksave
  697. PRINT #1, "title$ = "; CHR$(34); title$; CHR$(34)
  698. PRINT #1, "X = (80 - LEN(title$)) / 2"
  699. PRINT #1, "LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0"
  700. CLOSE #1
  701. LOCATE 8, 10: INPUT "ENTRY FOR A "; entrya$
  702. LOCATE 8, 45: INPUT "ENTRY FOR B "; entryb$
  703. LOCATE 10, 10: INPUT "ENTRY FOR C "; entryc$
  704. LOCATE 10, 45: INPUT "ENTRY FOR D "; entryd$
  705. LOCATE 12, 10: INPUT "ENTRY FOR E "; entrye$
  706. LOCATE 12, 45: INPUT "ENTRY FOR F "; entryf$
  707. LOCATE 14, 10: INPUT "ENTRY FOR G "; entryg$
  708. LOCATE 14, 45: INPUT "ENTRY FOR H "; entryh$
  709. LOCATE 16, 29: INPUT "ENTRY FOR I "; entryi$
  710. Disksave
  711. PRINT #1, "LOCATE 8, 15: PRINT "; CHR$(34); "A }  "; entrya$; CHR$(34); "TAB(45)"; CHR$(34); "E }  "; entryb$; CHR$(34)
  712. PRINT #1, "LOCATE 10, 15: PRINT "; CHR$(34); "B }  "; entryc$; CHR$(34); "TAB(45)"; CHR$(34); "F }  "; entryd$; CHR$(34)
  713. PRINT #1, "LOCATE 12, 15: PRINT "; CHR$(34); "C }  "; entrye$; CHR$(34); "TAB(45)"; CHR$(34); "G }  "; entryf$; CHR$(34)
  714. PRINT #1, "LOCATE 14, 15: PRINT "; CHR$(34); "D }  "; entryg$; CHR$(34); "TAB(45)"; CHR$(34); "H }  "; entryh$; CHR$(34)
  715. PRINT #1, "LOCATE 16, 29: PRINT "; CHR$(34); "I }  "; entryi$; CHR$(34); ""
  716. LetterDo
  717. FOR number% = 65 TO 73
  718. PRINT #1, "CASE "; number%; ":"
  719. NEXT
  720. WrongKey
  721. PRINT #1, "END SELECT"
  722. CLOSE #1
  723. SLEEP 5
  724. AdBox
  725.  
  726. END SUB
  727.  
  728. SUB LetterDo
  729. PRINT #1, "DO: Choice$ = INKEY$"
  730. PRINT #1, "LOOP WHILE Choice$ ="; CHR$(34); CHR$(34)
  731. PRINT #1, "Choice$ = UCASE$(Choice$)"
  732. PRINT #1, "SELECT CASE ASC(Choice$)"
  733. END SUB
  734.  
  735. SUB MenuLetter
  736. LOCATE 17, 20: INPUT "HOW MANY MENU ITEMS (LIMIT: 2 TO 12) "; menuitem$
  737. IF menuitem$ = "2" THEN
  738. Letter2
  739. ELSEIF menuitem$ = "3" THEN
  740. Letter3
  741. ELSEIF menuitem$ = "4" THEN
  742. Letter4
  743. ELSEIF menuitem$ = "5" THEN
  744. Letter5
  745. ELSEIF menuitem$ = "6" THEN
  746. Letter6
  747. ELSEIF menuitem$ = "7" THEN
  748. Letter7
  749. ELSEIF menuitem$ = "8" THEN
  750. Letter8
  751. ELSEIF menuitem$ = "9" THEN
  752. Letter9
  753. ELSEIF menuitem$ = "10" THEN
  754. Letter10
  755. ELSEIF menuitem$ = "11" THEN
  756. Letter11
  757. ELSEIF menuitem$ = "12" THEN
  758. Letter12
  759.  
  760. END IF
  761.  
  762. END SUB
  763.  
  764. SUB Namer
  765. CLS
  766. ON ERROR GOTO Handler
  767. LOCATE 10, 20: LINE INPUT "NEW NAME FOR TESTMENU.BAS:   "; Newname$
  768. NAME "TESTMENU.BAS" AS Newname$
  769. LOCATE 12, 20: PRINT "   TESTMENU.BAS RENAMED AS "; Newname$
  770. SLEEP 10
  771. Opener
  772.  
  773. END SUB
  774.  
  775. SUB Opener
  776. Top:
  777. CLS
  778. LOCATE 6, 1: PRINT STRING$(80, 92)
  779. FOR SIDE = 2 TO 6
  780. PRINT STRING$(5, 92); SPACE$(70); STRING$(5, 92)
  781. NEXT
  782. PRINT STRING$(80, 92)
  783. title$ = "M E N U M A N  O P T I O N S"
  784. X = (80 - LEN(title$)) / 2
  785. LOCATE 3, 1: COLOR 15, 0: PRINT TAB(X); title$; : COLOR 7, 0
  786. LOCATE 8, 15: PRINT "A }  KILL TESTMENU.BAS"; TAB(45); "C }  START MENUMAN"
  787. LOCATE 10, 15: PRINT "B }  RENAME TESTMENU.BAS"; TAB(45); "D }  EXIT MENUMAN"
  788. DO: Choice$ = INKEY$
  789. LOOP WHILE Choice$ = ""
  790. Choice$ = UCASE$(Choice$)
  791. SELECT CASE ASC(Choice$)
  792. CASE 65: Killer
  793. CASE 66: Namer
  794. CASE 67: MenuLetter
  795. CASE 68: SoLong
  796. CASE ELSE
  797. LOCATE 23, 23: COLOR 15, 0: PRINT "  WRONG KEY PRESSED -- TRY AGAIN  ": COLOR 7, 0
  798. SLEEP 3
  799. GOTO Top
  800. END SELECT
  801.  
  802. END SUB
  803.  
  804. SUB SoLong
  805. CLS
  806. SYSTEM
  807.  
  808. END SUB
  809.  
  810. SUB WrongKey
  811. PRINT #1, "CASE ELSE"
  812. PRINT #1, "LOCATE 23, 23: COLOR 15, 0: PRINT "; CHR$(34); "  WRONG KEY PRESSED -- TRY AGAIN  "; CHR$(34); ": COLOR 7, 0"
  813. PRINT #1, "SLEEP 3"
  814. PRINT #1, "GOTO Top"
  815. END SUB
  816.  
  817.